DOCTYPE html的重要性!

最近将html代码转换成jsp代码,生成jsp过程中ide自动忽略了<!DOCTYPE html>,结果出现很多问题。

暂时发现如下两点

0x01 页面所有文字样式改变

原样式网页:
enter image description here

未加DOCTYPE网页:
enter image description here

通过审查元素查看当前位置使用的样式,发现如下:
enter image description here

table user agent stylesheet 用户代理样式覆盖了我们css的样式(不限于table会出现这种情况)
在公共的taglib.jsp或者所有网页头部加入<!DOCTYPE html>就可以避免次类似问题。

0x02 部分JS代码无效

$(window).height(); –> 得到当前页面可视区域高度

部分页面弹窗用js算出屏幕中间的位置,需要用到次方法。
enter image description here
未加DOCTYPE结果是整个网页的高度
enter image description here
加上后恢复正常

定义和用法

<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 标签之前。
<!DOCTYPE> 声明不是 HTML 标签;
它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。
在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。
DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。
HTML5 不基于 SGML,所以不需要引用 DTD。
提示:请始终向 HTML 文档添加 <!DOCTYPE> 声明,这样浏览器才能获知文档类型。